package com.hanamaki.utils;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 * @author hanamaki
 * @version 1.0
 * @date 2021/6/30 14:36
 */
public class JDBCTest {

    public static Object[][] getSqlContent(String tableName) throws Exception {
        Object[][] result = null;
//        1. 加载驱动
//        激活静态代码
        Class.forName("com.mysql.cj.jdbc.Driver");


//        原始写法
//        DriverManager.registerDriver(new Driver());
//        2. 加载用户信息
//        2.1 连接的 url  路径
        String url = "jdbc:mysql://localhost:3306/exam?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
//        2.2 连接用户的用户名
        String username = "root";
//        2.3 连接用户的密码
        String pwd = "123456";
//        3. 连接数据库
//        Connection 代表数据库
        Connection connection = DriverManager.getConnection(url, username, pwd);
//        4. 查询数据，创建 一个 能够 执行 sql语句的对象
//        sql 语句 预处理对象
        Statement statement = connection.createStatement();
//        编写 需要查询的  sql语句
        String sql = "select * from " + tableName;
//        5. 执行查询  获得结果集
        ResultSet resultSet = statement.executeQuery(sql);
//        得到 表的映射
        ResultSetMetaData metaData = resultSet.getMetaData();
//        获得数据库中所有的列
        int columnCount = metaData.getColumnCount();
        System.out.println(columnCount);
        List<Object[]> data = new ArrayList<>();
//        遍历结果集 得到数据
        while (resultSet.next()) {  // 1
            String[] fields = new String[columnCount];
            for (int i = 0; i < columnCount; i++) {
                fields[i] = resultSet.getString(i + 1);
            }
            data.add(fields);
        }

        /*现在结果存放在  集合中 要将 集合中的数据 转存 到二维数组中*/
        result = new Object[data.size()][];
        for (int i = 0; i < data.size(); i++) {
            result[i] = data.get(i);
        }

//        6. 关闭 流操作
        resultSet.close();
        statement.close();
        connection.close();

        return result;




    }
}
